package cn.buddha.jesa.conditional.base;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;

import java.util.Objects;

/**
 * @ClassName WinCondition
 * @Author 友野浩二
 * @Version 1.0
 */
public class WinCondition implements Condition {

    /*
     * @Author 友野浩二
     * @Param [conditionContext -> 判断条件能使用的上下文环境, annotatedTypeMetadata -> 注解所在位置的注释信息]
     **/
    @Override
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
        Environment environment = conditionContext.getEnvironment();// 获取当前环境
        String OS = environment.getProperty("os.name");// 获得当前系统名
        // 包含Windows则说明是windows系统，返回true
        return Objects.nonNull(OS) && OS.contains("Windows");// 返回true则注入bean，false则不注入
    }
}
